/***********
 **	框架页js，下面的所有方法均为单例模式，一个页面只能实现一个实例！！！
 ********** */

/**系统时间**/
FrameTime={
		setSysTime:function(id){
			var time=mini.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss");
			$("#"+id).html(time);
		},
		//初始化系统时间，定时更新
		initial:function(id){
			var that=this;
			that.setSysTime(id);
			setInterval(function(){
				that.setSysTime(id);
			},1000);
		}
}




/**菜单（只支持2级菜单）**/
FrameMenu={
		lastCheckedMenu:null,//缓存上一个点击的一级菜单
		lastCheckedMenu2:null,//缓存上一个点击的二级菜单
		isMenuHide:false,//当前菜单隐藏或显示状态，默认显示
		//初始化菜单
		initial:function(id,ip,imgFolder){
			//从后台获取菜单数据
			var that=this;
			$.ajax({
				url:ctx+"/sys/getMenu.do",
				success:function(data){
					if(data&&data.length>0){
						//创建菜单
						that.createMenu(id,data,imgFolder);
						//加载一级菜单点击事件
						that.menuLv1click();
						//加载二级菜单点击事件
						that.menuLv2click();
					}else{
						showAlert("对不起，</br>您的权限不足！","warn","警告",function(){
							location.href=ctx+'/loginOut.do?ip='+ip;
				    	});
					}
				}
			});
		},
		//生成菜单dom
		createMenu:function(id,data,imgFolder){
			var menu_html="";
			if(data){
				for(var i=0;i<data.length;i++){
					var menuItem=data[i];//一级菜单
					  //存在菜单图标时加载图标
					var iconCls=[""];
					if(menuItem.info.iconCls!=undefined&&menuItem.info.iconCls!=null){//旧版权限系统返回iconCls
						iconCls=menuItem.info.iconCls.split(",");
					}else if(menuItem.info.iconcls!=undefined&&menuItem.info.iconcls!=null){//新版权限系统返回iconcls
						iconCls=menuItem.info.iconcls.split(",");
					}
					var menuImg=iconCls[0];//一级菜单图标
					var menuImgHover=iconCls[0];//一级菜单图标(选中状态)
					if(iconCls.length>1){
						menuImgHover=iconCls[1];
					}
					if(menuImg==""){
						menuImg=ctx+"/trunk/img/frame/style2/frame-left/menu/menu3.png";
					}else{
						menuImg=imgFolder+menuImg;
					}
					if(menuImgHover==""){
						menuImgHover=ctx+"/trunk/img/frame/style2/frame-left/menu/menu3-hover.png";
					}else{
						menuImgHover=imgFolder+menuImgHover;
					}
					var title=menuItem.text;
					var url=menuItem.info.url;
					var children=menuItem.children;//二级菜单
					menu_html+="<li>";
					menu_html+=	"	<div class='frame-menu-Lv1' isChecked='false' name='"+title+"' url='"+url+"'>";
					menu_html+=		"<img src='"+menuImg+"' title='"+title+"' class='frame-menu-icon' imgsrc='"+menuImg+"' imgsrc-hover='"+menuImgHover+"'>";
					menu_html+=		"<p>"+title+"</p>";
					menu_html+=	"	</div>";
					if(children&&children.length>0){
						menu_html+=	"<ul style='display: none' class='frame-menu-Lv2'>";
						for(var j=0;j<children.length;j++){
							var menuItem2=children[j];//二级菜单
							var title2=menuItem2.text;
							var url2=menuItem2.info.url;
							menu_html+=	"<li class='frame-menu-Lv2-item' name='"+title2+"' url='"+url2+"'>";
							menu_html+=		"<div class='frame-menu-Lv2-item-arrow'></div>";
							menu_html+=		"<div class='frame-menu-Lv2-item-title'>"+title2+"</div>";
							menu_html+=	"</li>";
						}
						menu_html+=	"</ul>";
					}
					menu_html+="</li>";
				}
			}
			$("#"+id).html(menu_html);
		},
		//一级菜单点击事件
		menuLv1click:function(){
			var that=this;
			$(".frame-menu-Lv1").click(function(){
				if(that.isMenuHide){
					that.hideMenu();
				}
				//取消上次点击的菜单(多次点击自己不触发此事件)
				if(that.lastCheckedMenu!=null&&that.lastCheckedMenu!=this){
					that.cancelCheckedMenu(that.lastCheckedMenu,false);//上次点击控件,是否需要收起二级菜单
				}
				//缓存本次点击的菜单
				that.lastCheckedMenu=this;
				//菜单点击效果切换
				var isChecked=$(this).attr('isChecked');// 当前选中状态
				var  menuLv2=$(this).parent().find("ul");
				if(menuLv2.length==0){//当前没有子菜单时点击永远是选中状态，不切换
					that.checkedMenu(this,null);//当前控件,二级子菜单
				}else{
					if(isChecked=='false'){
						that.checkedMenu(this,menuLv2);//当前控件,二级子菜单
					}else{
						that.cancelCheckedMenu(this,true);//当前控件,是否需要收起二级菜单
					}
				}
				
			});
		},
		//一级菜单菜单点击撑开选中事件
		checkedMenu:function(e,menuLv2){
			//1.显示二级菜单；2.切换一级菜单图标为选中状态；3-切换一级菜单右侧下拉箭头为展开状态
			$(e).attr('isChecked','true');
			$(e).find(".frame-menu-icon").attr('src',$(e).find(".frame-menu-icon").attr('imgsrc-hover'));
			$(e).addClass("frame-menu-Lv1-active");
			//二级菜单
			if(menuLv2!=null){
				menuLv2.show();
			}else{
				//没有二级菜单时直接打开页面
				FrameTab.addTab($(e).attr("name"),$(e).attr("name"),$(e).attr("url"));
			}
		},
		//一级菜单点击收起取消事件
		cancelCheckedMenu:function(e,isClose){
			//1.隐藏二级菜单；2.切换一级菜单图标为取消选中状态；3-切换一级菜单右侧下拉箭头为收起状态
			//原菜单再次点击时取消原菜单点击状态；点击其他菜单时，原菜单点击状态保留，以便下次点击时取消点击状态！
			if(isClose){
				$(e).attr('isChecked','false');
			}
			$(e).find(".frame-menu-icon").attr('src',$(e).find(".frame-menu-icon").attr('imgsrc'));
			$(e).removeClass("frame-menu-Lv1-active");
			//原菜单再次点击时收起二级菜单；点击其他菜单时，原菜单二级菜单不收起！
			if(isClose){
				var  menuLv2=$(e).parent().find("ul");
				if(menuLv2.length>0){
					menuLv2.hide();
				}
			}
		},
		//二级菜单点击事件
		menuLv2click:function(){
			var that=this;
			$(".frame-menu-Lv2-item").click(function(){
				//取消上次点击的菜单(多次点击自己不触发此事件)
				if(that.lastCheckedMenu2!=null&&that.lastCheckedMenu2!=this){
					$(that.lastCheckedMenu2).removeClass("frame-menu-Lv2-item-active");
					$(that.lastCheckedMenu2).find(".frame-menu-Lv2-item-arrow").removeClass("frame-menu-Lv2-item-arrow-hover");
				}
				that.lastCheckedMenu2=this;
				//本次点击选中状态样式
				$(this).addClass("frame-menu-Lv2-item-active");
				$(this).find(".frame-menu-Lv2-item-arrow").addClass("frame-menu-Lv2-item-arrow-hover");
				//打开页面
				if($(this).attr("name")=="首页"){
					FrameTab.addTab($(this).attr("name"),"首页",$(this).attr("url"));
				}else{
					FrameTab.addTab($(this).attr("name"),$(this).parent().prev().attr("name"),$(this).attr("url"));
				}
			});
		},
		//收起菜单
		hideMenu:function(){
			if(this.isMenuHide==false){
				this.isMenuHide=true;
				//隐藏二级菜单
				$(".frame-menu-Lv2").hide();
				//缩小左侧导航及一级菜单
				$(".frame-left-guide").find("b").addClass("frame-left-guide-b-min");
				$(".frame-left-guide-img").addClass("frame-left-guide-img-min");
				$(".frame-menu-Lv1").addClass("frame-menu-Lv1-min");
				//放大右侧主区域
				$(".frame-center").animate({left:'58px',width:'+=151px'},function(){
					 setTimeout(function(){
						 FrameTab.doLayout();//mini-tab重新布局
		        		},500);
				 });
			}else{
				this.isMenuHide=false;
				//还原左侧导航及一级菜单
				$(".frame-left-guide").find("b").removeClass("frame-left-guide-b-min");
				$(".frame-left-guide-img").removeClass("frame-left-guide-img-min");
				$(".frame-menu-Lv1").removeClass("frame-menu-Lv1-min");
				//缩小右侧主区域
				$(".frame-center").animate({left:'209px',width:'-=151px'},function(){
					 setTimeout(function(){
						 FrameTab.doLayout();//mini-tab重新布局
		        		},500);
				 });
				//打开所有之前展开的二级菜单
				$(".frame-menu-Lv1").each(function(i,e){
					var isChecked=$(e).attr("isChecked");
					if(isChecked=='true'){
						$(e).parent().find(".frame-menu-Lv2").show();
					}
				});
			}
			
		}
} 

/**tab页签**/
FrameTab={
	tabs:null,
	currentTab:null,
	//初始化
	initial:function(id){
		this.tabs=mini.get(id);
	},
	//tab右键菜单onBeforeOpen
	onBeforeOpen:function(e){
		FrameTab.currentTab=FrameTab.tabs.getTabByEvent(e.htmlEvent);
		if(!FrameTab.currentTab){
			e.cancel=true;
		}
	},
	//tab右键菜单-关闭其他
	closeAllBut:function(){
		var but=[FrameTab.currentTab];
		but.push(FrameTab.tabs.getTab("首页"));
		FrameTab.tabs.removeAll(but);
	},
	//tab右键菜单-关闭所有
	closeAll:function(){
		var but=[];
		but.push(FrameTab.tabs.getTab("首页"));
		FrameTab.tabs.removeAll(but);
	},
	//tab右键菜单-关闭当前
	closeTab:function(){
		if(FrameTab.currentTab.name=="首页"){
			showFailTip("首页无法关闭");
		}else{
			FrameTab.tabs.removeTab(FrameTab.currentTab);
		}
	},
	//增加tab页
	addTab:function(title,name,url){
		if(url==""||url==null) {
			return;
		}
		if(name!="首页"){
			name=title+name;
		}
		var tab=this.tabs.getTab(name);
		if(tab==undefined){
			tab={
					title:title,
					name:name
			}
			//这里拼接了url，实际项目，应该从后台直接获得完整的url地址
			if(url.indexOf("http://")!=-1||url.indexOf("https://")!=-1){
				tab.url=url;
			}else if(url.indexOf("\$\{")!=-1&&url.indexOf("\}")!=-1){
				var key=url.substring(url.indexOf("\$\{")+2,url.indexOf("\}"));
				var val=getProperties(key);
				tab.url=url.replace("\$\{"+key+"\}",val);
			}else{
				tab.url=ctx+url;
			}
			if(name=="首页"){
				tab.showCloseButton=false;
			}else{
				tab.showCloseButton=true;
			}
			this.tabs.addTab(tab);
			this.tabs.activeTab(tab);
		}else{
			this.tabs.activeTab(tab);
			//不重载页面，防止被保存数据丢失?
			this.tabs.reloadTab(tab);
		}
	},
	//首页显示
	showHomePage:function(title,url){
		this.addTab(title,'首页',url);
	},
	doLayout:function(){
		this.tabs.doLayout();
	}
	
}

function getProperties(key){
	var result;
	$.ajax({
		url:ctx+"/sys/getProperties.do",
		data:{
			key:key
		},
		async:false,
		success:function(data){
			result=data;
		}
	});
	return result;
}

/**全屏**/
FullScreen={
	open:function(){
		var docElm=document.documentElement;
		if(docElm.requestFullscreen){//W3C
			docElm.requestFullscreen();
		}else if(docElm.mozRequestFullScreen){//FireFox
			docElm.mozRequestFullScreen();
		}else if(docElm.webkitRequestFullScreen){//Chrome等
			docElm.webkitRequestFullScreen();
		}else if(docElm.msRequestFullscreen){//IE11
			docElm.msRequestFullscreen();
		}
		$("#fullScreen_open").hide();
		$("#fullScreen_closed").show();
	},
	closed:function(){
		if(document.exitFullscreen){
			document.exitFullscreen();
		}else if(document.mozCancelFullScreen){
			document.mozCancelFullScreen();
		}else if(document.webkitCancelFullScreen){
			document.webkitCancelFullScreen();
		}else if(document.msExitFullscreen){
			document.msExitFullscreen();
		}
		$("#fullScreen_open").show();
		$("#fullScreen_closed").hide();
	}
}